The present invention relates to interconnecting packet switches, and more particularly to interconnecting packet switches via switch device ports.
In a typical packet switching system that connects multiple subscribers to a data network, a high speed Ethernet switch is connected to the data network over 100BaseT ports. The high speed switch is then connected to several 10BaseT Ethernet switches over a standard interconnect, such as a Peripheral Component Interconnect (PCI) bus. Subscribers are connected to the 10BaseT switches via 10BaseT ports on the switches. Data packets are transmitted to and received from the data network through the 100BaseT ports of the high speed Ethernet switch. Data packets are transmitted between the high speed switch and the 10BaseT switches over the PCI bus. Data packets are forwarded between a 10BaseT port and the PCI bus, and between two 10BaseT ports on the same switch, by the 10BaseT switch. Data packets between subscribers that are on different 10BaseT switches are transmitted between the switches over the PCI bus.
Typically, each 10BaseT port and the PCI bus port on a 10BaseT switch have a receive buffer area. Each 10BaseT port and the PCI bus port also have transmit queues that contain pointers to entries in their respective receive buffers. For packets transmitted between switches sharing a PCI bus, the source switch reserves a buffer in the destination switch""s PCI receive buffer area, which then receives the packet via the PCI bus.
During periods of heavy packet load, it is possible that the PCI buffers on the 10BaseT switches can be overwhelmed, causing loss of packets. The heavy packet load can originate from the 100BaseT switch, or can be caused by the aggregate packet load of 10BaseT ports on a switch receiving packets destined for another 10BaseT or 100BaseT switch. Typically in a data network, loss of packets is not serious. The packet loss is usually detected by higher level protocol software and results in a request for retransmission of the lost data packets.
In a packet switching system carrying multiple packet streams, also referred to herein as Quality of Service (QoS) packet streams, such as data packets where a loss of packets is an easily recoverable event, and packets exchanged with a second packet network where loss of packets may seriously degrade service, connection to the second network can be via one or more 10BaseT ports. In such an arrangement, packets exchanged between the second network and other ports on the same switch as the second packet network ports are forwarded between the second network ports and the other ports by the switch. Packets exchanged between the second network and ports on a different switch than the switch on which the second network ports reside are transmitted to the different switch via the PCI bus. When the packets of the second network have a relatively low volume, one or two 10BaseT ports connected to the second network can typically handle the packet traffic.
A problem arises when the system is receiving a heavy data packet load in the presence of the high QoS second network packets. In such a situation, data packets received from the data network via the high speed Ethernet switch and forwarded to the 10BaseT switches, or aggregate data packets received over 10BaseT ports and destined for other switches, can exhaust the PCI bus port receive buffer areas. This can cause not only the loss of data packets, but also of second network packets exchanged between the 10BaseT switches. It is often the case that in a mixed packet switch system, the high priority second network packets that are discarded cannot be retransmitted, causing quality of service degradation or possible loss of service altogether.
To help alleviate the problem of exhausting the PCI receive buffers, most switches allow for allocation of the internal buffers as a global pool of buffers used by all ports, rather than a fixed amount of buffers per port. However, neither allocation scheme can prevent buffer exhaustion resulting from an extremely heavy data packet load.
Also, switches often allow for designation of packets received from and/or destined to a given port or address to be defined as high priority. However, it is still possible to drop these packets because there are no available receive buffers.
Accordingly, it is an object of the present invention to provide a packet switching system in which receive buffers are still available for certain identified packet streams when a heavy data load has exhausted the standard interconnect port receive buffers.
It is another object of the present invention to provide the receive buffers for certain identified packet streams when a heavy data load has exhausted the standard interconnect port receive buffers through an advantageous configuration of the switching device ports that requires no additional hardware or programming.
The illustrative embodiment of the present invention is a layer 2 switching system having a 100BaseT switch connected to a data network with two 10BaseT switches connected over a PCI bus to the 100BaseT switch. Two ports on one of the 10BaseT switches exchange high priority packetized voice information with the Public Switched Telephone Network (PSTN) voice network over a digital interface. The rest of the 10BaseT ports except for one on each switch are connected through line card interfaces to subscribers of the voice and data networks. The two remaining 10BaseT ports, one on each switch, are directly connected to each other.
Data packets are exchanged between the data network and the subscriber line card interfaces via the 100BaseT switch, the PCI bus, the 10BaseT switches and the 10BaseT device ports.
For the switch on which the voice network 10BaseT ports reside, voice packets are exchanged between the voice network interface and the line card interfaces connected to ports on this switch via standard packet forwarding on the switch.
Voice packets exchanged between the voice network interface and line card interfaces connected to the switch that does not have the voice network ports use the two directly connected 10BaseT ports as a secondary interconnect path, rather than the PCI bus. This secondary interconnect path works as a dedicated pathway for these inter-switch voice packets and has its own set of buffers that can""t be overwhelmed by data packet activity on the PCI bus. Use of static routing entries on the 10BaseT switches ensures that only voice packets will use the secondary interconnect path.
Although Applicant""s invention has been described in the context of a specific illustrative embodiment, the invention can be applied generally in any multi-packet-switch system having a standard primary switch interconnect to handle inter-switch packet traffic, separate buffer areas for each primary interconnect and the device ports, the ability to identify specific packet streams by an identifier in each packet, and the ability to specifically manage static routing of packets based on the packet stream identifier. In such systems, Applicants"" invention is implemented by creating secondary switch interconnects between device ports, and routing identified packet streams to these secondary switch interconnects through the use of static routing entries. In this manner, secondary switch interconnects can be dedicated to identified packet streams, thus eliminating primary interconnect buffer contention with other packet streams.